Just Do IT !

HA高可用与负载均衡入门到实战(一)----Docker中安装与配置Nginx

字数统计: 558阅读时长: 2 min
2020/04/09 Share

实现Docker容器中安装配置Nginx

1. 启动进入容器

1.1 拉取centos镜像:
docker pull centos

注意: 这样拉取的是最新的centos8镜像,如果想要拉取centos7则使用docker pull centos:7

1.2 启动进入容器
docker run -d --privileged --name nginx centos:v1 /usr/sbin/init
我这里起名为myNginx, 名字都可以只要不和其他容器冲突就行
在这里插入图片描述
docker exec -it 容器ID /bin/bash进入容器
在这里插入图片描述

2. 在容器中安装Nginx

2.1 在容器中编辑/etc/yum.repos.d/nginx.repo设置yum源

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

2.2 yum install -y nginx安装
在这里插入图片描述
2.3 启动nginx

systemctl start nginx
systemctl enable nginx #设置开机自动启动

2.4 保存容器
docker commit 容器ID nginx
在这里插入图片描述

3. 启动Nginx

3.1 启动容器
docker run -d -p 80:80 --privileged nginx /usr/sbin/init
在这里插入图片描述

3.2 主机中使用浏览器访问虚拟机IP地址
在这里插入图片描述

4. 配置nginx主目录

4.1 进入nginx容器,查看/etc/nginx/nginx.conf文件
更改root目录
在这里插入图片描述
4.2 建立/var/webroot/www目录

编辑index.html文件
在这里插入图片描述
4.3 重新启动nginx服务并在主机使用浏览器访问
在这里插入图片描述

5. 配置Nginx错误页重定向

5.1 编辑/etc/nginx/nginx.conf文件,配置error_page指令指定404页面
在这里插入图片描述
5.2 在/var/webroot/www目录,编辑404.html文件
在这里插入图片描述
在这里插入图片描述
5.3 配置error_page 404 =200更改响应状态码
在这里插入图片描述
重启服务
在这里插入图片描述

6. 配置nginx访问控制权

6.1 在server块内增加deny all指令
在这里插入图片描述
在这里插入图片描述
6.2 使用location块进行访问控制
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可以看到,当直接访问直接访问http://192.168.0.131/deny拒绝
访问访问index.html页面allow允许

原因:

http://192.168.0.131/的结果是 403 Forbidden,说明被匹配到location / {..deny all;}

原因很简单HTTP 请求 GET / 被“严格精确”匹配到了普通location / {} ,则会停止搜索正则location ;

http://192.168.0.131/index.html 结果是之前设置的index页面,说明没有被location / {…deny all;}匹配,否则会 403 Forbidden。

但 /index.html 的确也是以“ / ”开头的,只不过此时的普通location /的匹配结果是最大前缀匹配,所以 Nginx 会继续搜索正则location , location ~ \.html$表达了以.html结尾的都allow all; 于是接着就访问到了实际存在的index.html页面。

CATALOG
  1. 1. 实现Docker容器中安装配置Nginx
    1. 1.1. 1. 启动进入容器
    2. 1.2. 2. 在容器中安装Nginx
    3. 1.3. 3. 启动Nginx
    4. 1.4. 4. 配置nginx主目录
    5. 1.5. 5. 配置Nginx错误页重定向
    6. 1.6. 6. 配置nginx访问控制权
      1. 1.6.1. 原因: